home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / d_d / caltech / inbound / mcm / docs < prev    next >
Encoding:
Text File  |  1993-06-22  |  12.8 KB  |  273 lines

  1. MCM - MultiUser Communications Manager
  2. Version 1.2
  3. ------------------------------------------------------------------------
  4. Copyright (C) 1991,2 Michael Sawyer (msawyer@soest.hawaii.edu)
  5. The program may be redistributed in its unmodified form, provided
  6. there is no charge for the program beyond normal distribution costs.
  7. If you wish to distribute modified versions of this code, please send
  8. patches to me to be included in the standard release.  I would like to
  9. avoid having many different versions available besides the
  10. distribution version.
  11. At this point, I am planning on uploading all updates to
  12. tybalt.caltech.edu, pending their approval.
  13. Personality modules for this software are the property of their
  14. respective authors, who control all rights to redistribution.
  15. Included modules may be distributed with no limitations.
  16. ------------------------------------------------------------------------
  17. The author assumes no liability for any damages caused by this
  18. software.  Although all efforts have been made to assure that there
  19. are no security holes, use this program at your own risk.  Please
  20. report any bugs to msawyer@soest.hawaii.edu as soon as found for
  21. corrections, and watch rec.games.frp.announce for update announcements.
  22. ------------------------------------------------------------------------
  23.  
  24.                   1. Purpose
  25.  
  26. MCM is intended as a conference server for small groups needing to
  27. participate in online real-time meetings.  Unlike IRC, MCM is NOT
  28. intended to be placed online, and left running for people to wander in
  29. and out finding different rooms available.  MCM has only one room, but
  30. allows the operator (room leader) much greater control over activities
  31. within that room.  Also, a number of special features have been set up
  32. for various groups interested in this service.  For example, a
  33. flexible dice-rolling system is provided for people interested in
  34. online gaming.
  35.  
  36. MCM does not require any special programs on the client side for
  37. normal operation, although it has been tested with a few common
  38. IRC/MUD clients.  Using the normal Telnet program, users are able to
  39. get a functional split-screen mode (with seperate input and output
  40. windows) on any termcap-supported terminal (using the termcap on the
  41. server machine).
  42.  
  43. Once you have built the executable code for MCM, you will need to
  44. setup directories for the various "rooms" (ports) which may be used.
  45. If you are going to, for example, run MCM on port 7000, type
  46.     setup_mcm 7000
  47. This will create a subdirectory under your home directory named mcm,
  48. place a directory in that directory named 7000, and place a number of
  49. control files in this directory.  These files are described below, and
  50. may be edited to your taste.
  51.  
  52. The operation of the MCM server can be completly changed through the
  53. use of "personality modules," allowing the operator to build
  54. additional code customizing MCM for the particular use.  Two sample
  55. modules, and one third-party macro-processing modules are included
  56. with this distribution.
  57.  
  58.                 2. Compilation
  59.  
  60. Simply type "make".  It should be generic enough to compile on
  61. anything.  If you have trouble, feel free to send me mail asking for
  62. help.  (msawyer@soest.hawaii.edu)  This program has only been tested
  63. under SunOS (Solaris) and Ultrix at this time.
  64.  
  65. You may modify the mcm.h file to make slight changes to suit your
  66. tastes.  There are many docs in that file for the customization
  67. options, but no changes should be necessary.  However, if you have
  68. trouble compiling or running the program, you may need to make changes
  69. to some of the configuration options.  In particular, many compilers
  70. don't like bitfields, which may be disabled by way of the BADBITS flag
  71. in mcm.h
  72.  
  73.                  3. Operation
  74.  
  75. To start the server, you will first need to select a InterNet port
  76. number to use for the communications.  Typically, using ports in the
  77. 7000 to 9000 range are safest, as others can be used by various other
  78. programs.  You will not be able to bind to a port already used by
  79. another program, so error messages such as "port already in use"
  80. simply mean that you need to select a different port.  (Note that 6000
  81. is often used by X servers, so you should not use this port.)  The
  82. Unix command "netstat -a" will show all ports in use on your system.
  83. Once you have selected a port, simply type
  84.     mcm (portnumber) &
  85. to start the server.  You will, however, have to have a number of
  86. files in the current directory for the server to function correctly.
  87. Most importantly, you will need the "mcm-accts" file to define the
  88. valid users on the server.  A sample mcm-accts file is provide, and
  89. its format is as follows:
  90.     user:password:email address:extra information
  91. Note that you MUST provide a value for all four fields in this file,
  92. and there should be no blank lines in the file.  Comment lines may be
  93. used by placing a # sign in the first column.  If you wish to leave
  94. some fields unused, simply place a star (*) in the first column of the
  95. file.  In the user field, this will evaluate as any users not yet
  96. matched; in the password field, this will evaluate as no password
  97. needed, so the line
  98.     *:*:*:*
  99. will allow any users (with names which do not match earlier names in
  100. the file) to log in without a password, e-mail address, or other
  101. information.  If the username starts with a slash character (/), this
  102. user is authorised to use the room-leader commands.  Note that the
  103. users should NOT type the slash when logging in.
  104.  
  105. The file mcm-welcome is displayed before the Name: prompt when users
  106. connect to the MCM server.  It can be used to identify the server, or
  107. provide any other important information.
  108.  
  109. The file mcm-hello is used as a welcoming banner to users once logged
  110. into the system.
  111.  
  112. The files mcm-help* are used for the various online halp facilities,
  113. and should be used as provided (but may be changed by the operator).
  114.  
  115. The files mcm-log and master-log are genetared by the mcm program, and
  116. include a public-message-only log (the former) and a room-leader's log
  117. (the latter).
  118.  
  119. The files mcm.* may be typed by the room-leader during online
  120. sessions, and should be no longer than 30 lines in length.
  121.  
  122. To connect to the server (with the telnet program), simnply type
  123.     telnet (hostname) (portnumber)
  124. from a Unix system, or 
  125.     telnet (hostname) /PORT=(portnumber)
  126. from VMS machines.  (Although the server won't compile under VMS,
  127. users can connect to it from VMS sites, although VMS does NOT follow
  128. all telnet negotiation protocols.)  Users then log in with their
  129. username (and if needed, password) at the appropriate prompts.  The
  130. command "/?" will show the users a list of available commands on the
  131. system.
  132.  
  133. Room leaders should use the "*+" command to "become" the active room
  134. leader.  Once enabled as the active leader, "*?" will list available
  135. room-leader commands.
  136.  
  137. The available options for the normal users are:
  138.  
  139. /E    Exit the system.  This is fairly self-explanatory.
  140. /H    Get help with the various commands.  This will print the
  141.     file "mcm-help" to the user.
  142. /H x    Similar to above, this will print the file "mcm-help-x" to the
  143.     user, allowing you to provide detailed help on various topics.
  144. /L    Re-login with a different name.  This is just like
  145.     exiting and then logging back in.
  146. /R    Roll dice.  For example, /R1D6+1 will roll 1 six sided dice
  147.     with a +1 modifier (ie: from 2 to 7).  /R alone will roll 1D6,
  148.     /R3 will roll 3D6, /RD4 will roll 1D4.
  149. /P    Just like /R, but the results will only be seen by the room
  150.     leader and the person who rolled the dice.
  151. /S    Send a private message.  For example, typing "/S2 Hello" will
  152.     send a private message to whoever is logged into job 2 (as
  153.     identified with the /W command) containing the text Hello.
  154. /T    Set terminal type.  This is used by the split-screen mode to
  155.     determine what type of terminal control codes to use.  The
  156.     selected terminal should be in the termcap (or terminfo) file
  157.     on your system.  Common terminals, such as VT100, are found on
  158.     nearly all Unix systems.
  159. /V    Get the version number of the server.
  160. /W    List who is online.  This will also give you their E-Mail
  161.     address (if found in the account file) and whatever extra
  162.     information is provided.
  163.  
  164. Commands available to the room leader are:
  165.  
  166. *D    This command will put a short message on the "door" of the
  167.     room.  For example, "*D Welcome" will put the text "Welcome"
  168.     on the door for all new users to see.
  169. *E!     This command will shut down the server, and should only be
  170.     used when done with a session.
  171. *+    Use this command to start being the active room leader,
  172.     allowing you to use the other * commands.  It can olny be used
  173.     by authorized users.
  174. *-    Use this command to quit being the room leader.  If you are
  175.     not the active room leader when you issue this command, you
  176.     will "kick out" whoever is the room leader.  Only authorized
  177.     users can use this command.
  178. *K    This command will force a user to log out.  It can be used to
  179.     get rid of disruptive users, or users whose terminal has gone
  180.     haywire.
  181. *T    This command will type a file for all users to see.  The file
  182.     should be pre-loaded into the mcm directory, with the name
  183.     "mcm.file", so if you issue the command "*T sample", you would
  184.     display the file "mcm.sample" to all users.  Note that to
  185.     prevent accidental output of long files faster than users can
  186.     read them, only the first 30 lines are printed.
  187. *G+    "Gag" a user, so any messages from that user are only seen by
  188.     the room leader.  "*G+3" would gag job 3, and "*G+*" will gag
  189.     all users.
  190. *G-    This is the opposite of the gag command, and releases the gag
  191.     on users.
  192. *L    This command puts the room in listen-only mode, where only the
  193.     room leader can "speak".  Only the room leader will see
  194.     messages entered by other users.  You may optionally put a job
  195.     number after the command to give that user the floor, so the
  196.     command "*L5" will allow only job 5 and the room leader to
  197.     speak.
  198. *O    This will open the floor to general discussion, allowing all
  199.     users to speak.  It is used to "undo" the *L command.
  200. *C    This command is followed by a list of jobs to be taken into
  201.     private confernce with the room leader.  Depending on the mode
  202.     settings, these users may or may not be able to "hear"
  203.     messages from outside of conference and/or speak to users out
  204.     of conference.  If enabled, users in conference can preceed
  205.     text with a tilde "~" character to speak out of conference.
  206.     *C alone will clear the conference room and continue as normal.
  207. *A    This command will allow you to select an assistant room
  208.     leader, with most of the abilities of the room leader.  This
  209.     can be used if a part is split into two groups, with the room
  210.     leader running the game in *C, and the assistant outside (as
  211.     an option).
  212. *M    This command is used to set various system modes.  *M alone
  213.     will list the current modes.  Valid modes are:
  214.     *MD    Setting this on (*MD+) will enable the "default gag"
  215.         mode, where new users entering are by automatically
  216.         gagged.
  217.     *MT    Setting this mode on will allow users in conference to
  218.         talk to users out of conference either thorough
  219.         private sends or the ~ command mentioned above.
  220.     *MH    Setting this mode on allows users in conference to
  221.         hear the conversation outside, and to recieve private
  222.         sends from users not in conference.
  223.     *MS    Enabling this mode allows the room leader (as well as
  224.         the master-log file) to recieve (snoop) all private
  225.         messages between other users.
  226.  
  227.  
  228.             4. Personality Modules
  229.  
  230. With release 1.2, the concept of personality modules was introduced to
  231. MCM.  With these modules, you can literally change the entire
  232. operation of the server, as all major functions have hooks into the
  233. personality modules.  For detailed information on how to program
  234. personality modules, look at any of the included modules, which
  235. include comments detailing how to write the module.  Note that you
  236. will have to know how to program in C to write these modules.
  237.  
  238. The following modules are included with this release (1.2):
  239.     dd    *D&D module (as a sample module)
  240.     sr    ShadowRun dice re-rolling example
  241.     hop    Hopcraft's Macro-based module (in a seperate tar file)
  242.  
  243. To build the distribution with one of the optional modules, all you
  244. need to do is type
  245.     make <modname>
  246. So, to build MCM with the "hop" module, you should type
  247.     make hop
  248. Note that you can include only module in any compilation.
  249.  
  250. Any modules you write are your code, and may be distributed as you see
  251. fit.  However, if you will mail me a copy (msawyer@soest.hawaii.edu),
  252. I will try to include your file in the next release of the MCM
  253. software.
  254.  
  255. I am interested in hearing your experiences with the personality
  256. modules, in particular if you work on anything unusual.  Also, if you
  257. have any problems with the system as it is, please let me know.
  258. ----
  259.  
  260. THANKS!
  261.  
  262. I would like to thank Steve Kramarsky's Shadowrun group for testing
  263. the server, and especially Richard Pieri for helping me find lots of
  264. bugs in the code!
  265.  
  266. "Just James" (at Duke University) provided a few new options (/c, /j,
  267. and /n) which weren't in my versions, as well as a few suggestions for
  268. new things in the code.  
  269.  
  270. Geoffery Hopcraft helped find some of the problems in the personality
  271. system, as well as write the first real personality module for the
  272. system.
  273.